//
// Created by admin on 2024/10/31.
// 二分查找 找任意一个相同值的索引 没有就返回-1
//

#include <iostream>
#include <vector>

using namespace std;

int search(vector<int> vv, int x)
{
    int l = 0,r=vv.size()-1;
    int m;
    while(l<=r)
    {
        m=(l+r)/2;
        if(x<vv[m])
            r=m-1;
        else if(x>vv[m])
            l=m+1;
        else
            return m;
    }
    return -1;
}
int main()
{
    //                0    1  2  3  4  5  6  7  8  9 10 11 12  13  14  15  16
    vector<int>  v {-11, -5, 0, 0, 2, 2, 2, 2, 2, 3, 5, 7, 8, 10, 13, 70, 79};
//    vector<int> v={-1,0,3,5,9,12};
//    vector<int> v={9};
    int l = 0, r = v.size() - 1, x = 2;
    cout << search(v, x);
    return 0;
}